<table>
  <thead>
    <tr>
      <th>Name</th>
      <th>Size in bytes</th>
      <th>Default Value</th>
      <th>Comment</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Protocol</td>
      <td>1</td>
      <td>0xE3</td>
      <td></td>
    </tr>
    <tr>
      <td>Size</td>
      <td>4</td>
      <td>-</td>
      <td>The size of the message in bytes not including the header and size fields</td>
    </tr>
    <tr>
      <td>Type</td>
      <td>1</td>
      <td>0x33</td>
      <td>The value of the OP_SEARCHRESULT opcode</td>
    </tr>
    <tr>
      <td>Result Count</td>
      <td>4</td>
      <td>NA</td>
      <td>The number of search results in this message</td>
    </tr>
    <tr>
      <td>Result list</td>
      <td>Varies</td>
      <td>NA</td>
      <td>A list of search results</td>
    </tr>
  </tbody>
</table>

Search result list item format<br>
The table below describes the format of a single search result list-item. Each search result<br>
includes A hash that uniquely identiﬁes the ﬁle along with details of another eMule client<br>
holding the ﬁle. 
<table>
  <thead>
    <tr>
      <th>Name</th>
      <th>Size in bytes</th>
      <th>Default Value</th>
      <th>Comment</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>File Hash</td>
      <td>16</td>
      <td>NA</td>
      <td>A hash value, for unique identiﬁcation of the ﬁle
</td>
    </tr>
    <tr>
      <td>Client ID</td>
      <td>4</td>
      <td>NA</td>
      <td>Client ID for an eMule peer holding the ﬁle</td>
    </tr>
    <tr>
      <td>Client Port</td>
      <td>2</td>
      <td>NA</td>
      <td>The TCP port of the client holding the ﬁle</td>
    </tr>
    <tr>
      <td>Tag Count</td>
      <td>4</td>
      <td>NA</td>
      <td>The number of descriptor tags following</td>
    </tr>
    <tr>
      <td>Tag list</td>
      <td>Varies</td>
      <td>NA</td>
      <td>A list of descriptor tags results</td>
    </tr>
  </tbody>
</table>
There are also several tags describing the ﬁle attributes. The tag list is described below.<br>
Note that most of the tags are optional and that their order is not<br>
guaranteed. Tag encoding rules are described is detail an the beginning of this chapter.
<table>
  <thead>
    <tr>
      <th>Name</th>
      <th>Tag name</th>
      <th>Tag Type</th>
      <th>Comment</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>File name</td>
      <td>Integer, 0x01</td>
      <td>String</td>
      <td></td>
    </tr>
    <tr>
      <td>File size</td>
      <td>Integer, 0x02</td>
      <td>Integer</td>
      <td></td>
    </tr>
    <tr>
      <td>File type</td>
      <td>Integer, 0x03</td>
      <td>String</td>
      <td></td>
    </tr>
    <tr>
      <td>File format</td>
      <td>Integer, 0x04</td>
      <td>String</td>
      <td></td>
    </tr>
    <tr>
      <td>Sources</td>
      <td>Integer, 0x15</td>
      <td>Integer</td>
      <td>The number of available sources for this ﬁle</td>
    </tr>
    <tr>
      <td>Artist</td>
      <td>String "Artist"</td>
      <td>String</td>
      <td></td>
    </tr>
    <tr>
      <td>Album</td>
      <td>String "Album"</td>
      <td>String</td>
      <td></td>
    </tr>
    <tr>
      <td>Title</td>
      <td>String "Title"</td>
      <td>String</td>
      <td></td>
    </tr>
    <tr>
      <td>Length</td>
      <td>String "length"</td>
      <td>Integer</td>
      <td></td>
    </tr>
    <tr>
      <td>Bitrate</td>
      <td>String "bitrate"</td>
      <td>Integer</td>
      <td></td>
    </tr>
    <tr>
      <td>Codec</td>
      <td>String "codec"</td>
      <td>Integer</td>
      <td></td>
    </tr>
  </tbody>
</table>
